package cc.facesign.admin.service;

import java.util.Set;

public interface AclService {

    /**
     * 获取登录用户的perms
     */
    Set<String> getPerms(String userId);

    /**
     * security密码加密
     * @param password 明文
     * @return 秘钥
     */
    String getSecret(String password);

    /**
     * 秘钥与明文是否匹配
     */
    boolean match(String password, String secret);

    /**
     * 初始化，添加单位管理者、部门管理员、会议管理员角色
     * @param deptId 单位id
     */
    void initRole(String deptId, String userId);

    /**
     * 为管理者关联角色 不会重复关联
     * @param userId 用户id
     * @param rid 单位id
     * @param type 类型，可以是root、dept、conf
     */
    void setManage(String userId, String rid, String type);

    /**
     * 为管理者取消关联角色，会判断是否应该取消关联
     * @param userId 用户id
     * @param rid 单位id
     * @param type 类型，可以是root、dept、conf
     */
    void deleteManage(String userId, String rid, String type);
}
